/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var mergeTwoLists = function(l1, l2) {
  let temp = null, result = null, temp1 = l1, temp2 = l2;
  if(!l1) return l2;
  if(!l2) return l1;
  if(temp1.val < temp2.val) {
    temp = temp1;
    temp1 = temp1.next;
  } else {
    temp = temp2;
    temp2 = temp2.next;
  }
  result = temp;
  while(temp1 && temp2) {
    if(temp1.val < temp2.val) {
      temp.next = temp1;
      temp1 = temp1.next;
    } else {
      temp.next = temp2;
      temp2 = temp2.next;
    }
    temp = temp.next;
  }
  if(temp1) temp.next = temp1;
  if(temp2) temp.next = temp2;
  return result;
};

